﻿using ChurchDiary.TableEntity;
using System;
using System.Collections.Generic;
using System.Data;

namespace ChurchDiary.DAL.Contract
{
    public interface IDALChurchWorker
    {
        #region Documents
        string InsertDocument(EntityDocuments Documents);
        string UpdateDocument(EntityDocuments Document);
        string DeleteDocument(Guid DocumentId);
        List<EntityDocuments> GetDocuments();
        List<EntityDocuments> GetDocuments(int PageNo, string SearchKey, string Sort, string SortMode);
        EntityDocuments GetDocument(Guid DocumentId);
        #endregion
        #region Church Worker Designation
        string InsertChurchWorkerDesignation(EntityChurchWorkerDesignation ChurchWorkerDesignation);
        string UpdateChurchWorkerDesignation(EntityChurchWorkerDesignation ChurchWorkerDesignation);
        string DeleteChurchWorkerDesignation(Guid ChurchWorkerDesignationId);
        List<EntityChurchWorkerDesignation> GetChurchWorkerDesignation();
        List<EntityChurchWorkerDesignation> GetChurchWorkerDesignation(int PageNo, string SearchKey, string Sort, string SortMode);
        EntityChurchWorkerDesignation GetChurchWorkerDesignation(Guid ChurchWorkerDesignationId);
        #endregion
        #region Church Worker
        DataTable GetChurchWorkerFullDetailsSet(Guid ChurchWorkerId);
        EntityChurchWorker GetChurchWorkerFullDetails(Guid ChurchWorkerId);
        string InsertChurchWorker(EntityChurchWorker ChurchWorker);
        string UpdateChurchWorker(EntityChurchWorker ChurchWorker);
        string DeleteChurchWorker(Guid ChurchWorkerId);
        List<EntityChurchWorker> GetChurchWorker(int PageNo, string SearchKey, string Sort, string SortMode,int PerPage);
        List<EntityChurchWorker> GetChurchWorker();
        EntityChurchWorker GetChurchWorker(Guid ChurchWorkerId);
        #endregion
        #region NameTitle
        string InsertNameTitle(EntityNameTitle NameTitle);
        string UpdateNameTitle(EntityNameTitle NameTitle);
        string DeleteNameTitle(Guid NameTitleId);
        List<EntityNameTitle> GetNameTitle(int PageNo, string SearchKey, string Sort, string SortMode);
        EntityNameTitle GetNameTitle(Guid NameTitleId);
        List<EntityNameTitle> GetNameTitle();
        #endregion
        #region Church Worker Status
        List<EntityChurchWorkerStatus> GetChurchWorkerStatus(int PageNo, string SearchKey, string Sort, string SortMode, int PerPage);
        EntityChurchWorkerStatus GetChurchWorkerStatus(Guid ChurchWorkerStatusId);
        List<EntityChurchWorkerStatus> GetChurchWorkerStatus();
        string InsertChurchWorkerStatus(EntityChurchWorkerStatus ChurchWorkerStatus);
        string UpdateChurchWorkerStatus(EntityChurchWorkerStatus ChurchWorkerStatus);
        string DeleteChurchWorkerStatus(Guid ChurchWorkerStatusId);
        #endregion
        #region ChurchWorkerJobtitle
        string InsertChurchWorkerJobtitle(EntityChurchWorkerJobtitle Jobtitle);
        List<EntityChurchWorkerJobtitle> GetChurchWorkerJobtitle(int PageNo, string SearchKey, string Sort, string SortMode, int PerPage);
        #endregion
        #region ChurchWorker Family
        string InsertChurchWorkerfamily(EntityChurchWorkerFamilyDetails ChurchWorkerfamily);
        string UpdateChurchWorkerfamily(EntityChurchWorkerFamilyDetails ChurchWorkerfamily);
        string DeleteChurchWorkerfamily(Guid ChurchWorkerfamilyId);
        List<EntityChurchWorkerFamilyDetails> GetChurchWorkerFamily(int PageNo, string SearchKey, string Sort, string SortMode, int PerPage,Guid ChurchWorkerId);
        EntityChurchWorkerFamilyDetails GetChurchWorkerFamily(Guid ChurchWorkerFamilyId);
        #endregion
        #region ChurchWorker Document
        List<EntityChurchWorkerDocuments> GetAllChurchWorkerDocuments(Guid ChurchWorkerId);
        List<EntityChurchWorkerDocuments> GetChurchWorkerDocuments(int PageNo, string SearchKey, string Sort, string SortMode, int PerPage, Guid ChurchWorkerId);
        EntityChurchWorkerDocuments GetChurchWorkerDocuments(Guid ChurchWorkerDocumentsId);
        string InsertChurchWorkerDocuments(EntityChurchWorkerDocuments ChurchWorkerDocuments);
        string UpdateChurchWorkerDocuments(EntityChurchWorkerDocuments ChurchWorkerDocuments);
        string DeleteChurchWorkerDocuments(Guid ChurchWorkerDocumentsId);
        #endregion
        #region ChurchWorker Knownlanguages
        List<EntityChurchWorkerKnownlanguages> GetAllChurchWorkerKnownlanguages(Guid ChurchWorkerId);
        List<EntityChurchWorkerKnownlanguages> GetChurchWorkerKnownlanguages(int PageNo, string SearchKey, string Sort, string SortMode, int PerPage, Guid ChurchWorkerId);
        EntityChurchWorkerKnownlanguages GetChurchWorkerKnownlanguages(Guid ChurchWorkerKnownlanguagesId);
        string InsertChurchWorkerKnownlanguages(EntityChurchWorkerKnownlanguages ChurchWorkerKnownlanguages);
        string UpdateChurchWorkerKnownlanguages(EntityChurchWorkerKnownlanguages ChurchWorkerKnownlanguages);
        string DeleteChurchWorkerKnownlanguages(Guid ChurchWorkerKnownlanguagesId);
        #endregion
        #region ChurchWorker History
        List<EntityChurchWorkerHistroy> GetAllChurchWorkerHistroy(Guid ChurchWorkerId);
        List<EntityChurchWorkerHistroy> GetChurchWorkerHistroy(int PageNo, string SearchKey, string Sort, string SortMode, int PerPage, Guid ChurchWorkerId);
        EntityChurchWorkerHistroy GetChurchWorkerHistroy(Guid ChurchWorkerHistroyId);
        string InsertChurchWorkerHistroy(EntityChurchWorkerHistroy ChurchWorkerHistroy);
        string UpdateChurchWorkerHistroy(EntityChurchWorkerHistroy ChurchWorkerHistroy);
        string DeleteChurchWorkerHistroy(Guid ChurchWorkerHistroyId);
        #endregion
        #region ChurchWorker Designation
        List<EntityChurchWorkerOrdinations> GetChurchWorkerOrdination(Guid ChurchWorkerId);
        string InsertChurchWorkerOrdinations(EntityChurchWorkerOrdinations Ordinations);
        string DeleteChurchWorkerOrdinations(Guid OrdinationId);
        #endregion
    }
}

